package com.web.server.common.exception;

import com.web.server.common.utils.ConfigUtil;
import com.web.server.common.utils.ConfigUtil;

/**
 * Created by ZHANGXIANLIANG1 on 2016/3/2.
 */
public class StatusCode {
    public static int STATUS_FAILURE = 0;                // 失败
    public static int STATUS_SUCCESS = 1;                // 成功
    public static int STATUS_SUCCESS_PART = 2;           // 部分成功
    public static int STATUS_ARGUMENTS_INVALID = 10;     // 参数不合法
    public static int STATUS_SESSION_INVALID = 100;      // session 无效
    public static int STATUS_REMOTE_HTTP_ERROR = 200;    // HTTP 借口调用失败

    /**
     * 根据错误码获取错误信息
     * @param code 错误码
     * @param args 错误信息参数，用于替换错误信息中指定的标识符
     */
    public static String message(int code, String... args) {
        return message("status.code.", code, args);
    }

    /**
     * 根据前缀获取错误码信息
     * @param prefix  错误码前缀
     * @param code  错误码
     * @param args  错误信息参数，用于替换错误信息中指定的标识符
     */
    public static String message(String prefix, int code, String ...args) {
        String message = ConfigUtil.getProperty(prefix + code);
        for (int i = 0; i < args.length; i++) {
            String tempIdentifier = "{" + i + "}";
            if (message.contains(tempIdentifier)) {
                message = message.replace(tempIdentifier, args[i]);
            }
        }
        return message;
    }
}
